查看原文
其他

2.5K Star,一个高性能、无侵入的Java性能监控和统计工具,有点东西!

macrozheng 2023-12-17

The following article is from 开源小分队

服务器监控对于网站的运行至关重要,它可以帮助我们及时发现问题,并采取相应的措施。

今天给大家推荐一款好用的性能监控和统计工具 -- MyPerf4J。

功能特性

  • 高性能:单线程1600 万次/秒 ,每次记录花费 63 纳秒
  • 无侵入:采用 JavaAgent 方式,不用修改应用代码
  • 高实时: 支持秒级统计,最低统计粒度为 1 秒,是全量统计,不丢失任何一次记录
  • 监控指标:JVM Metrics和 Method Metrics,具体包括Thread,Memory,ByteBuff,GC,Class,Compilation,FileDescriptor,RPS,Count,Avg,Min,Max,StdDev,TP50, TP90, TP95, TP99, TP999, TP9999, TP100等指标

安装部署

  • 下载并解压 MyPerf4J-ASM.zip

  • 修改 MyPerf4J.properties 配置文件中 app_namemetrics.log.xxxfilter.packages.include 的配置值

  • 在 JVM 启动参数里加上两个参数:

    -javaagent:D:\\MyPerf4J-ASM-3.3.0-SNAPSHOT\\MyPerf4J-ASM-3.3.0-SNAPSHOT.jar
    -DMyPerf4JPropFile=D:\\MyPerf4J-ASM-3.3.0-SNAPSHOT\\MyPerf4J.properties
  • 下载安装InfluxDB v2.x,并创建buckets,命名为MyPerf4J

  • 修改MyPerf4J.properties配置文件

    metrics.exporter = http.influxdb
    influxdb.version=2.1
    influxdb.orgName=org #根据实际配置修改
    influxdb.host=127.0.0.1
    influxdb.port=8086 #根据实际配置修改
    influxdb.username=test #根据实际配置修改
    influxdb.password=12345678 #根据实际配置修改
    influxdb.database=MyPerf4J #根据实际配置修改,是bucket的名称
  • 安装 Grafana,选择版本8.4.0

  • 导入Method DashboardJVM Dashboard

配置时注意:

Grafana 中的数据源名称是 InfluxDB,Query Language 是 Flux

修改 JVM Variables:

# Application
import "influxdata/influxdb/schema"

schema.tagValues(
  bucket: "MyPerf4J",
  tag: "AppName",
  predicate: (r) => true,
  start: -7d
)

# Host
import "influxdata/influxdb/schema"

schema.tagValues(

  bucket: "MyPerf4J",
  tag: "host",
  predicate: (r) => true,
  start: -7d
)

监控效果

项目地址

https://github.com/LinShunKang/MyPerf4J

总结

MyPerf4J 是一个高并发、低延迟的高性能 Java 应用性能监控和统计工具。支持 log 文件和 InfluxDB 数据存储,在实际中使用InfluxDB 比较方便,可以使用 Grafana 可视化实时监控服务器,感兴趣的小伙伴赶快去试试吧。


微信8.0将好友放开到了一万,小伙伴可以加我大号了,先到先得,再满就真没了

扫描下方二维码即可加我微信啦,2023,抱团取暖,一起牛逼。

推荐阅读


继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存